/**
 * Created by zy on 2016/6/8.
 * 缺陷统计 - 管体缺陷仪表板 - 管体缺陷
 */

;(function ($, window, document, undefined) {

    /*** 管道联动操作 - start ***/
    // 管道
    var $pipeline = $('#JQ_pipeline').select3();
    // 管段
    var $segment = $('#JQ_segment').select3({
        title: '管段'
    });
    // 起点位置
    var $begin = $('#JQ_begin').select3({
        title: '起点位置',
        server: true,
        mileType: 'float',
        param: {
            'pipeLineId': $pipeline,
            'pipeSegmentId': $segment
        }
    });
    // 终点位置
    var $end = $('#JQ_end').select3({
        title: '终点位置',
        server: true,
        mileType: 'float',
        param: {
            'pipeLineId': $pipeline,
            'pipeSegmentId': $segment,
            'beginSignId': $begin
        }
    });

    // 填充管段
    function fillSegment(id) {
        if (id) {
            DyyBase.ajax(DyyBase.url_segment(), {pipeLineId: id}, function (dataset) {
                var json = DyyBase.getSelect(dataset);
                $segment.add(json);
            }, {async: false});
        } else {
            $segment.add([]);
        }
    }

    // 填充起点&终点
    function fillPos(id, tag) {
        if (id) {
            if (tag === 'pipe') {
                DyyBase.ajax(DyyBase.url_pipe_pos(), {pipeLineId: id}, function (dataset) {
                    var begin = DyyBase.getPos(dataset, 'begin', true);
                    var end = DyyBase.getPos(dataset, 'end', true);
                    $begin.asset(begin);
                    $end.asset(end);
                }, {async: false});
            } else if (tag === 'segment') {
                DyyBase.ajax(DyyBase.url_segment_pos(), {pipeSegmentId: id}, function (dataset) {
                    var begin = DyyBase.getPos(dataset, 'begin', true);
                    var end = DyyBase.getPos(dataset, 'end', true);
                    $begin.asset(begin);
                    $end.asset(end);
                }, {async: false});
            }
        } else {
            $begin.add([]);
            $end.add([]);
        }
    }

    // 触发管道
    $pipeline.element.on('select', function (e, v) {
        var id = v || $pipeline.val();
        fillSegment(id);
        fillPos(id, 'pipe');
    });
    // 触发管段
    $segment.element.on('select', function (e, v) {
        var id = v || $segment.val();
        fillPos(id, 'segment');
    });

    // 默认触发第一条管道
    $pipeline.element.trigger('select');
    /*** 管道联动操作 - end ***/


    // 内检测缺陷统计表格
    var $table_01 = $('#JQ_static_table_01');
    // 非内检测缺陷统计表格
    var $table_02 = $('#JQ_static_table_02');

    // 搜索条件
    var filter = {
        getCondition: function () {
            var data = {};
            data.mode = true;
            // 管道
            data.lineId = function () {
                var v = $pipeline.val();
                if (v) {
                    return v;
                } else {
                    $pipeline.element.TIP({content: '管道名称不能为空!'});
                    filter.mode = false;
                }
                return '';
            }();
            // 管段
            data.segmentId = function () {
                var v = $segment.val();
                if (v) {
                    return v;
                }
                return '';
            }();
            // 起点位置
            data.beginMileage = function () {
                return $begin.val('mile');
            }();
            // 终点位置
            data.endMileage = function () {
                return $end.val('mile');
            }();
            return DyyBase.convertToArr(data);
        }
    };

    // 被克隆的内检测缺陷统计 - 静态表格
    var static_table_01 = $('#JQ_static_table_01').html();
    var static_table_02 = $('#JQ_static_table_02').html();

    // 查询
    $('#JQ_search_btn_01').click(function () {
        var param = filter.getCondition();
        if (param[0].value) {
            DyyBase.ajax(defectApi.url_board_statistics(), param, function (dataset) {
                var inspData = dataFormat.getStatisticsTable(dataset.result.inspData, 'inspData');
                var noInspData = dataFormat.getStatisticsTable(dataset.result.noInspData, 'noInspData');

                //
                $('#JQ_insp_date').html('(统计时间：' + dataset.result.pagDate + ')');
                $('#JQ_noinsp_date').html('(统计时间：' + dataset.result.noInsp_begin + '&nbsp;&nbsp;至&nbsp;&nbsp;' + dataset.result.noInsp_end + ')');

                // 填充内检测缺陷统计
                if (inspData) {
                    $table_01.empty().html(inspData);
                }

                // 填充非内检测缺陷统计
                if (noInspData) {
                    $table_02.empty().html(noInspData);
                }

                // 查询成功为导出添加成功状态
                $('#JQ_export_btn_01').attr('data-status', 'true');

                // 生成图表
                dataFormat.drawCharts(dataset.result);
            });
        }
    });

    // 数据格式化
    var dataFormat = {

        // 获得内检测缺陷统计数据 & 非内检测缺陷统计
        getStatisticsTable: function (data, tag) {

            if (data) {
                var count = 0;
                var html = '';

                // 总数
                for (var i = 0; i < data.length; i++) {
                    count += parseInt(data[i].NUM);
                }

                if (count == 0) {
                    if (tag == 'inspData') {
                        return static_table_01;
                    } else if (tag == 'noInspData') {
                        return static_table_02;
                    }
                }

                // html内容
                for (var j = 0; j < 7; j++) {
                    if (data[j]) {
                        var percent = Math.round(parseInt(data[j].NUM) / count * 10000) / 100.00;
                        percent = percent.toFixed(2);
                        percent = percent + '%';
                        html += '<p><span style="width: 34%">' + data[j].TYPE + '</span><span style="width: 33%">' + data[j].NUM + '</span><span style="width: 33%">' + percent + '</span></p>';
                    } else {
                        if (j == 6) {
                            html += '<p class="zy-t-f">&nbsp;</p>';
                        } else {
                            html += '<p class="zy-t-f n-b">&nbsp;</p>';
                        }
                    }
                }
            }

            return html;
        },

        // 生成缺陷类型所占比图表
        drawCharts: function (dataset) {
            try {
                window.drawCharts(dataset);
            } catch (e) {
                //alert(e);
            }
        }
    }

})(jQuery, window, document);
